Ruby 日記 28日目: splat演算子
次のコードを実行するとどうなりますか
code:gold/ex28/main.rb
def foo(arg1:100, arg2:200)
puts arg1
puts arg2
end
option = {arg2: 900}
foo arg1: 200, *option
選択肢:
code:sh
200
900
code:sh
900
200
code:sh
100
200
エラーになる
解説:
code:sh
# ruby gold/ex28/main.rb
gold/ex28/main.rb:8: syntax error, unexpected *
foo arg1: 200, *option
^
正解は「エラーになる」だね
/icons/hr.icon
splat演算子についての理解、個人的にはふわふわしていて、可変長引数として指定するときに使うよ〜くらいの理解 code:rb
def foo(*args)
p args
end
みたいな
あとはこんな感じで使えるよ、とか
code:ruby
*bar = 'a', 1, false
p bar.class # => Array
まあこれは bar = 'a', 1, false でも同じ結果になるんだけどね...
そうだなぁ、あとは
code:rb
みたいな
総じて、arrayを展開するような感じだな、という理解をしている